<?php
class Profile_ControlPanelController extends XPHP_Controller
{
    public function _init()
    {
        //Load layout mặc định cho các action
        $this->loadLayout('ControlPanel/XAdmin');
    }

    #[Authorize(roles = 'Administrator')]
    public function indexAction()
    {
        $id = $this->session->user->id;
        //Lấy ra thông tin của tài khoản hiện tại
        $model = new Areas_Profile_Models_Profile($id);
        $model->birthdate = XPHP_Date::isTheDay($model->birthdate);
        return $this->view($model);
    }

    #[Authorize(roles = 'Administrator')]
    public function indexPost(Areas_Profile_Models_Profile $model = null)
    {
        if ($this->hasModel()) {
            if ($this->model->validate()) {
                $this->model->id = $this->session->user->id;
                $this->model->birthdate = XPHP_Date::toTime(
                    $this->model->birthdate);
                if ($this->model->update()) {
                    return $this->json(
                        array('success' => true,
                             'message' => 'Cập nhật thông tin cá nhân thành công'));
                } else
                    return $this->json(
                        array('success' => false,
                             'message' => 'Xảy ra lỗi khi cố cập nhật thông tin cá nhân'));
            } else
                return $this->json(
                    array('success' => false,
                         'message' => 'Thông tin cá nhân nhập vào chưa hợp lệ'));
        }
    }

    #[Authorize(roles = 'Administrator')]
    public function changePasswordAction()
    {
        return $this->view();
    }

    #[Authorize(roles = 'Administrator')]
    public function changePasswordPost(
        Areas_Profile_Models_ChangePassword $model = null)
    {
        if ($this->hasModel()) {
            if ($this->model->validate()) {
                if ($this->model->newPassword == $this->model->confirmPassword) {
                    //Kiểm tra password cũ với session
                    if (XPHP_String::md5Encode(
                            $this->model->oldPassword) == $this->session->user->password
                    ) {
                        //Gán id của user hiện tại
                        $this->model->id = $this->session->user->id;
                        if ($this->model->change()) {
                            return $this->json(
                                array('success' => true,
                                     'message' => 'Cập nhật mật khẩu mới thành công'));
                        } else
                            return $this->json(
                                array('success' => false,
                                     'message' => 'Xảy ra lỗi khi cố cập nhật mật khẩu mới'));
                    } else
                        return $this->json(
                            array('success' => false,
                                 'message' => 'Mật khẩu cũ không chính xác'));
                } else
                    return $this->json(
                        array('success' => false,
                             'message' => 'Xác nhận mật khẩu không chính xác'));
            } else
                return $this->json(
                    array('success' => false,
                         'message' => 'Thông tin cá nhân nhập vào chưa hợp lệ'));
        }
    }

    public function changeAvatar()
    {
    }
}